import store from '@/store'
import Vue from 'vue'
import VueRouter from 'vue-router'
// 使用路由
Vue.use(VueRouter)
// 引入路由匹配规则
import routes from './routes'

// 下列三行代码是方式路由跳转时点击多次报出错误，进行错误抛出
//获取原型对象上的push函数
const originalPush = VueRouter.prototype.push
//修改原型对象中的push方法
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}


const router = new VueRouter({
  // base: '/dist',
  // mode: 'history',
  routes
})


// 全局前置路由守卫
router.beforeEach((to, from, next)=>{
  // 判断是否已登录
  if (localStorage.getItem('token')) {
    if (to.path == '/login') next(false) // 已登录用户取消此次路由
    else next()  
  } else {
    if (to.path == '/login') next()
    else {
      Vue.prototype.notifyError('请登录操作!')
      next('/login')
    }
  }
})

// 全局后置路由守卫
router.afterEach((to,from)=>{
  document.title = to.meta.title || 'PetRescue'
})


export default router;
